function init_menu() {
    var ac = this.location.pathname;
    $(".nav-treeview").find('a').each(function () {
        var tmp_href = $(this).attr('href');
        if (tmp_href == ac) {
            $(this).addClass("active");
            $(this).parent().parent().parent().children("a").addClass("active");
            $(this).parent().parent().parent().addClass("menu-open");
        }
    });
}

function get_table_basic_option() {
    var table_basic_option = {
        striped: true,      //是否显示行间隔色
        cache: false,      //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        filterControl: true, //表头显示过滤口
        cardView: false,                    //是否显示详细视图

        //分页排序设置
        sortable: true,      //是否启用排序
        sortOrder: "asc",     //排序方式
        pagination: true,     //是否显示分页（*）
        pageNumber: 1,      //初始化加载第一页，默认第一页
        pageSize: 15,      //每页的记录行数（*）
        pageList: [15, 30, 50, 100, 'ALL'],  //可供选择的每页的行数（*）
        sidePagination: "client",   //分页方式：client客户端分页，server服务端分页（*）

        //搜索设置
        search: true, //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
        strictSearch: false, //设置为 true启用 全匹配搜索，否则为模糊搜索
        searchOnEnterKey: true,

        //右上方功能按钮
        showRefresh: true, //是否显示刷新按钮
        showToggle: true,   //显示切换按钮
        showColumns: true, //是否显示所有的列
        showExport: true,  //显示导出按钮

        //导出设置
        exportOptions: { ignoreColumn: [0] },
        exportDataType: "all",              //basic', 'all', 'selected'。
        minimumCountColumns: 2,    //最少允许的列数
        clickToSelect: true,    //是否启用点击选中行
        onLoadError: function (status) {
            show_alert_text(
                "警告",
                "加载数据失败，请联系管理员处理！"
            )
        }

    };
    return table_basic_option;
}

function show_alter(title,message) {
    dialog_type=BootstrapDialog.TYPE_INFO;
    BootstrapDialog.show({
        title: title,
        type: dialog_type,
        message: message,
        buttons: [{
            label: '确定',
            action: function (dialogRef) {
                dialogRef.close();
            }
        }]
    });
}

function show_warning(title,message){
    dialog_type=BootstrapDialog.TYPE_WARNING;
    BootstrapDialog.show({
        title: title,
        type: dialog_type,
        message: message,
        buttons: [{
            label: '确定',
            action: function (dialogRef) {
                dialogRef.close();
            }
        }]
    });
}

function show_confirm(title,message,confirm_action=null, cancel_action=null,confirm_data=null) {
    if (confirm_action == null) {
        confirm_action = function (confirm_data) {
            return;
        }
    }
    if (cancel_action == null) {
        cancel_action = function (confirm_data) {
            return;
        }
    }
    BootstrapDialog.show({
        title: title,
        message: message,
        type: BootstrapDialog.TYPE_PRIMARY,
        data: confirm_data,
        buttons: [
            {
                label: '确认',
                cssClass: 'btn-primary',
                action: function (dialogRef) {
                    confirm_action(confirm_data);
                    dialogRef.close();
                }
            },
            {
                label: '取消',
                action: function (dialogRef) {
                    cancel_action(confirm_data);
                    dialogRef.close();
                }
            }
        ]
    });
}



function get_modal_data($modal) {
    var modal_data = {};
    $modal.find('input[name],textarea[name]').each(function () {
        var name = $(this).attr('name');
        if ($(this).hasClass("checkbox_2_switch")) {
            if ($modal.find('input[name="' + name + '"]').bootstrapSwitch('state') == true) {
                modal_data[$(this).attr('name')] = 1;
            } else {
                modal_data[$(this).attr('name')] = 0;
            }
        } else {
            modal_data[$(this).attr('name')] = $.trim($(this).val());
        }
    });
    $modal.find('textarea[name]').each(function () {
        modal_data[$(this).attr('name')] = $.trim($(this).val());
    }
    );
    $modal.find('select[name]').each(function () {
        modal_data[$(this).attr('name')] = $.trim($(this).val());
    }
    );
    return modal_data;
}

function fill_modal_data($modal, modal_data) {
    for (var name in modal_data) {
        if ($modal.find('input[name="' + name + '"]').hasClass("checkbox_2_switch")) {
            if (modal_data[name].toString() == "1") {
                //show_alert("checked");
                $modal.find('input[name="' + name + '"]').bootstrapSwitch({ state: true });
            } else {
                //show_alert("unchecked");
                $modal.find('input[name="' + name + '"]').bootstrapSwitch({ state: false });
            }
        } else {
            $modal.find('textarea[name="' + name + '"]').val(modal_data[name]);
            $modal.find('select[name="' + name + '"]').val(modal_data[name]).trigger("change");
            $modal.find('input[name="' + name + '"]').val(modal_data[name]);
        }
    }
}

function fill_select2_by_url(url, $select_element) {
    var select_list = [];
    $.ajax({
        url: url,
        dataType: 'json',
        delay: 250,
        data: {},
        async: false,
        success: function (json_data) {
            select_list = json_data;
        },
        error: function (ex) {
            show_alert("警告", "请求数据出错，请联系管理员处理！");
        },
        beforeSend: function () {
        }
    });
    $select_element.select2({
        placeholder: "请选择",
        allowClear: false,
        data: select_list
    });
}

function clear_form($form) {
    $(':input', $form).each(function () {
        var type = this.type;
        var tag = this.tagName.toLowerCase(); 
        // normalize case
        if (type == 'text' || type == 'password' || tag == 'textarea')
            this.value = "";
        else if (tag == 'select' || type == 'select2')
            this.selectedIndex = -1;
    });
    $form.find(".checkbox_2_switch").bootstrapSwitch('destroy');
}

function get_response_data(request_url,request_data){
    let resp_data={};
    $.ajax({
        url: request_url,
        dataType: 'json',
        data: request_data,
        async: false,
        success: function (json_data) {
            // console.log(json_data)
            resp_data=json_data;
        },
        error: function (ex) {
            show_alert("警告", "请求数据出错，请联系管理员处理！");
        },
        beforeSend: function () {
        }
    });
    return resp_data;
}